The inventive concept relates generally to electronic memory technologies. More particularly, the inventive concept relates to nonvolatile memory devices and related programming methods.
Electronic memory devices can be roughly divided into two categories according to whether they retain stored data when disconnected from power. These categories include volatile memory devices, which lose stored data when disconnected from power, and nonvolatile memory devices which retain stored data when disconnected from power. Examples of volatile memory devices include dynamic random access memory (DRAM) and static random access memory (SRAM), and examples of nonvolatile memory devices include flash memory, read only memory (ROM), phase change random access memory (PRAM), resistive random access memory (RRAM), and magnetoresistive random access memory (MRAM).
In recent years, there has been a continuing increase in the demand for nonvolatile memory devices. This increased demand is due in part to the proliferation of mobile devices such as mobile telephones and computing devices, which may lose power but are typically designed to store large amounts of data. Among nonvolatile memory devices, flash memory devices have become especially popular due to attractive features such as high data storage capacity, low power consumption, and resistance to physical shock.
In an effort to increase the performance and storage capacity of flash memory devices, researchers have continually reduced the feature size and spacing of flash memory devices in recent years. Moreover, researchers have also developed flash memory devices capable of storing more than one bit of data per memory cell. While these developments have enabled flash memory devices to operate at higher speeds and/or store more data, they have also tightened the operating margins of the flash memory devices, increasing potential risks of errors. Accordingly, a considerable amount of research has also been devoted to developing operating techniques for addressing these risks.
One such technique is a programming scheme referred to as incremental step pulse programming (ISPP), in which memory cells are programmed by applying an incrementally increasing program voltage to the memory cells in successive program loops to gradually increase their respective threshold voltages. In the program loops, a verification operation is performed to determine whether the memory cells have been successfully programmed to corresponding target states. After the verification operation determines that a particular memory cell has been successfully programmed to its target state, that memory cell is generally not programmed further. Unfortunately, however, the threshold voltage of the memory cell may subsequently shift due to external or internal factors such as charge leakage or coupling to adjacent components. Such a threshold voltage shift may lead to errors in stored data.